草庐IT

Java Map 按值排序

全部标签

c# - 内存重新排序会导致 C# 访问未分配的内存吗?

据我了解,C#是一种安全语言,不允许访问未分配的内存,除非通过unsafe关键字。但是,它的内存模型允许在线程之间存在不同步访问时重新排序。这会导致竞争危险,其中对新实例的引用似乎在实例完全初始化之前可用于竞争线程,并且是双重检查锁定的一个众所周知的问题。ChrisBrumme(来自CLR团队)在他们的MemoryModel中解释了这一点文章:Considerthestandarddouble-lockingprotocol:if(a==null){lock(obj){if(a==null)a=newA();}}Thisisacommontechniqueforavoidingaloc

c# - 使用自定义 IComparer 对 CollectionViewSource 进行排序

我正在尝试对派生自CollectionViewSource的集合进行排序,该集合仅具有用于排序的SortDescriptions。不幸的是,我需要能够使用我自己的自定义IComparer,但我似乎无法找到一种方法来做到这一点。想想数据网格,我有自己的多列排序算法。我在想一种方法是使用实​​现CollectionChanged的​​集合,它是CollectionViewSource和我的真实数据源之间的附加层,但如果有人有任何建议,我真的更喜欢更好的方法。 最佳答案 BeaStollnitz有一个自定义排序示例here.那篇文章的重点

c# - Linq 按字母顺序排序

我有一个产品表,想要按字母顺序对数据进行排序。但是当我写这个查询时,他们仍然通过id来。我在谷歌中查看了很多页面,但找不到任何来源。varproduct=Db.tablename.Where(s=>s.colum==DropDownList2.SelectedValue).OrderBy(s=>s.Name); 最佳答案 这个查询varproduct=Db.tablename.Where(s=>s.colum==DropDownList2.SelectedValue).OrderBy(s=>s.Name);在被要求之前不会被执行。因

c# - 如何使用 LINQ 在组内进行排序

是否有可能(最好使用LINQ)在不打乱组顺序的情况下在组本身内对具有自然分组的集合进行排序?让我解释一下。我有一个这样的集合:Listlist=newList(){newgrpitem(){groupCode="1",item="a"},newgrpitem(){groupCode="1",item="b"},newgrpitem(){groupCode="1",item="c"},newgrpitem(){groupCode="2",item="a"},newgrpitem(){groupCode="2",item="c"},newgrpitem(){groupCode="2",it

c# - 使用查询表达式对 List<T> 进行排序

我在使用Linq订购这样的结构时遇到问题:publicclassPerson{publicintID{get;set;}publicListAttributes{get;set;}}publicclassPersonAttribute{publicintID{get;set;}publicstringName{get;set;}publicstringValue{get;set;}}一个人可能会这样:PersonAttributeAge=newPersonAttribute{ID=8,Name="Age",Value="32"};PersonAttributeFirstName=new

c# - LINQ 中的排序和分组

我有一个字符串元组列表,比如(P1,P2)我想知道是否有一个LINQ语句,我可以在其中按P1(按升序)分组,并让该组包含该组的所有P2值(按降序)。对于输入:("A","B"),("A","C"),("D","B")我想要两组:“A”和“D”(按此顺序,每次)其中“A”组包含“C”和“B”(按此顺序,每次),“D”组包含“B”。这是否可以通过内置的LINQ类实现,还是我需要自己迭代这些组并对其进行排序? 最佳答案 不,这并不难-您只需要跟踪查看的是组还是组中的元素。这是一个示例查询:varquery=fromtupleintuple

c# - 相当于一个允许重复键的排序字典

我需要一个数据结构,可以按对象关联的浮点键对对象进行排序,最低的在前。问题是键代表成本,所以经常有重复,我不关心这个,因为如果两个成本相同,我会捕获第一个,因为它没有区别,问题是编译器提示。是否有一种数据结构的行为方式相同但允许重复键?编辑-我仍然需要重复项,因为如果一个结果是死胡同,我会捕获下一个(它们是a*搜索中的节点)所以为了清楚起见,它需要允许按顺序排序的重复键。 最佳答案 你写:equivalenttoadictionarythatallowsduplicatekeysIneedadatastructurethatcans

c# - 如何在 C# 中对列表进行排序

这个问题在这里已经有了答案:Multiple"orderby"inLINQ(7个答案)关闭6年前。我有一个类:publicclassMyObject{publicstringName;publicintAge;}我有一个Myobject对象列表:NameAgeABC12BBC14ABC11如何按条件对这个列表进行排序:先按姓名排序,然后按年龄排序。有了这个列表,排序后的结果:NameAgeABC11ABC12BBC14

c# - 在 C# 中,事件参数是按引用还是按值传递的?

一个相当简单的问题(我认为),但我似乎还没有看到答案。我知道有些值是通过值传递的(如int和long),而其他值在将它们传递给函数时通过引用传递(如字符串)。在我的程序中,我使用了后台工作程序,这样当我们在后台进行长时间处理时,GUI就不会锁定。我需要将数据从另一个文件传递回UI线程,因此我一直在为此使用事件。现在我需要将字符串数组列表发送回GUI线程以在那里进行处理,我担心它将如何处理。基本上,在工作线程中,我有一个循环来填充列表,通过事件处理程序将其发送回GUI,然后清除它,以便它可以在下一次通过循环时填充它并重新开始。我担心当我这样做时,如果列表是通过引用传递的,那么在UI线程上

c# - 将数据 View 排序为数据表

我有以下方法:privateDataTablegetsortedtable(DataTabledt){dt.DefaultView.Sort="Namedesc";//Iwouldneedtoreturnthedatatablesorted.}我的问题是我无法更改此方法的返回类型,我必须返回一个DataTable,但我想返回它已排序。dt.DefaultView是否有神奇的隐藏属性来返回排序后的dt? 最佳答案 privateDataTablegetSortedTable(DataTabledt){dt.DefaultView.So